package com.szlanyou.thirdsdk.retrofit.client;

import com.szlanyou.thirdsdk.retrofit.callback.IHttpResultHandler;
import com.szlanyou.thirdsdk.retrofit.file.download.IHttpDownloadProgressResultHandler;
import com.szlanyou.thirdsdk.retrofit.file.upload.UploadFileWrapper;

import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Set;

import io.reactivex.Observable;
import retrofit2.http.Url;

/**
 * @author 陈章
 * create at 2020/11/20 9:12
 * desc:
 */
public interface INetRequest {
    /**
     * 设置网络请求发起的拦截器,亦可在{@link com.szlanyou.thirdsdk.retrofit.client.HttpClient.RequestBuilder#httpResultHandler(IHttpResultHandler)}中的{@link IHttpResultHandler#onStart(int)}方法里实现此功能。
     *
     * @param onRequestInterceptor
     */
    void setOnRequestInterceptor(HttpMaster.OnRequestInterceptor onRequestInterceptor);

    /**
     * 手动关闭请求对话框
     */
    void dismissLoading();

    /**
     * 主动取消网络请求 (单个请求)
     *
     * @param requestCodeOut
     */
    void cancel(String requestCodeOut);

    /**
     * 主动取消网络请求 (单个页面)
     *
     * @param requestPageFlag
     */
    void cancelByPageFlag(String requestPageFlag);

    /**
     * 主动取消网络请求 (多个请求)
     * @param requestCodeSet
     */
    void cancel(Set<String> requestCodeSet);

    /**
     * 取消所有的网络请求
     */
    void cancelAll();
}